﻿using System;
using System.Collections.Generic;

using System.IO;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Traviesuras.Models;

namespace Traviesuras.Controllers
{
    public class UsuarioController : Controller
    {
        //
        // GET: /Usuario/

        public ActionResult Index()
        {
            if(Session["usuario"]==null)
                return this.RedirectToAction("Sesion", "Login");

            clsUsuario cls = new clsUsuario();
            cls = (clsUsuario)Session["usuario"];
            cls.clsPersona = clsAccesoDB.ConsultaPersona(cls.persona).First();





            









            return View(cls);
        }

        [HttpPost]
        public ActionResult Index(clsUsuario cls,HttpPostedFileBase file)
        {
            if (Session["usuario"] == null)
                return this.RedirectToAction("Sesion", "Login");
            if (((List<clsMenu>)Session["menu"]).Find(q => q.direccion == "/usuario/index") == null)
                return null;
            //tratar archivo
            if (file != null)
            {
                using (MemoryStream ms = new MemoryStream())
                {
                    file.InputStream.CopyTo(ms);
                    cls.clsPersona.imagen = ms.GetBuffer();
                }
                //cls.tamaño = (file.ContentLength / 1024);
                string tipo = file.FileName.Substring(file.FileName.Length - 4, 4);
                tipo = tipo.Replace(".", "");
                if (tipo != "jpg" && tipo != "jpeg")
                {
                    ModelState.AddModelError("error", "Formato de Imagen Incorrecto.");
                    return View(cls);
                }
            }
            else {
                cls.clsPersona.imagen = ((clsUsuario)Session["usuario"]).clsPersona.imagen;
            }
            string msg="";
            clsAccesoDB.ModificaPersona(cls.clsPersona, ref msg);
            ModelState.AddModelError("error", msg);
            if (cls.contrasenaString == cls.recontrasenaString2 && cls.contrasenaString != "" && cls.contrasenaString != null)
                clsAccesoDB.ModificaUsuario(cls, ref msg);
            ModelState.AddModelError("error", msg==""?"Actualizado OK.":msg);


            return View(cls);
        }


        public ActionResult GetPhoto()
        {
            if (Session["aux"] == null)
                return null;
            byte[] s = (byte[])Session["aux"];
            Session["aux"] = null;
            if (Session["usuario"] == null)
                return this.RedirectToAction("Sesion", "Login");
            return File(s, "image/jpeg");
        }
    }
}